【Mybatis】Mybatis

您所在的位置:网站首页 java batchUpdate mybatis 【Mybatis】Mybatis

【Mybatis】Mybatis

2024-07-12 15:37| 来源: 网络整理| 查看: 265

文章目录 系列GithubNoteCodemavensqlmybatis-implementplugin-codeplugin-common-tool 使用方法generatorConfig.xmlpom.xml Author

系列 【Mybatis】Mybatis-Generator-Postgresql返回主键插件【Mybatis】Mybatis-Generator-Oracle返回主键插件【Mybatis】Mybatis-Generator-batchDelete(批量删除)方法插件【Mybatis】Mybatis-Generator-Postgresql&Mysql(批量新增)方法插件【Mybatis】Mybatis-Generator-Oracle(批量新增)方法插件【Mybatis】Mybatis-Generator-Mysql(批量更新)方法插件【Mybatis】Mybatis-Generator-Postgresql(批量更新)方法插件【Mybatis】Mybatis-Generator-Oracle(批量更新)方法插件【Mybatis】Mybatis-Generator-Tool 生成Java和Xml的Method工具类 Github

地址:https://github.com/ithuhui/hui-mybatis-generator-plugins 分支:master 位置:com.hui.mybatis.plugins

Note

PG批量更新插件,核心贴出来,有需要的看我的GITHUB,准备更新微服务BLOG

github上针对mybatis-generator还有很多不同类型的插件,我实在懒的看,而且太多复杂的功能,我简单点搞自己需要的。

Code maven org.mybatis mybatis 3.4.6 org.mybatis.generator mybatis-generator-core 1.3.7 sql update t_hui_table from (values (1,'name'),(2,'name2') ) as temp (id,name) where t_hui_table.id = temp.id mybatis-implement update T_HUI_ORDER ORDER_NAME = temp.ORDER_NAME, PRODUCT_ID = temp.PRODUCT_ID, BUY_QUANTITY = temp.BUY_QUANTITY, CREATED_TIME = temp.CREATED_TIME from (values ( #{item.orderId,jdbcType=VARCHAR},#{item.orderName,jdbcType=VARCHAR},#{item.productId,jdbcType=VARCHAR},#{item.buyQuantity,jdbcType=DECIMAL},to_timestamp(#{item.createdTime,jdbcType=TIMESTAMP},'yyyy-MM-dd hh24:mi:ss') ) ) as temp (ORDER_ID,ORDER_NAME,PRODUCT_ID,BUY_QUANTITY,CREATED_TIME) where T_HUI_ORDER.ORDER_ID=temp.ORDER_ID; plugin-code /** * PostgreBatchUpdatePlugin *

* Description: *

* Creation Time: 2018/12/15 1:12. * * @author HuWeihui */ public class PostgreBatchUpdatePlugin extends PluginAdapter { private final static String BATCH_UPDATE = "batchUpdate"; private final static String PARAMETER_NAME = "recordList"; @Override public boolean validate(List list) { return true; } @Override public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { if (introspectedTable.getTargetRuntime().equals(IntrospectedTable.TargetRuntime.MYBATIS3)) { MethodGeneratorTool.defaultBatchInsertOrUpdateMethodGen(MethodGeneratorTool.UPDATE,interfaze,introspectedTable,context); } return super.clientGenerated(interfaze, topLevelClass, introspectedTable); } @Override public boolean sqlMapDocumentGenerated(Document document, IntrospectedTable introspectedTable) { if (introspectedTable.getTargetRuntime().equals(IntrospectedTable.TargetRuntime.MYBATIS3)) { addSqlMapper(document, introspectedTable); } return super.sqlMapDocumentGenerated(document, introspectedTable); } private void addSqlMapper(Document document, IntrospectedTable introspectedTable){ String tableName = introspectedTable.getFullyQualifiedTableNameAtRuntime(); List columnList = introspectedTable.getAllColumns(); String primaryKeyName = introspectedTable.getPrimaryKeyColumns().get(0).getActualColumnName(); //primaryKey的JAVA名字 String primaryKeyJavaName = introspectedTable.getPrimaryKeyColumns().get(0).getJavaProperty(); XmlElement updateElement = SqlMapperGeneratorTool.baseElementGenerator(SqlMapperGeneratorTool.UPDATE, BATCH_UPDATE, FullyQualifiedJavaType.getNewListInstance()); XmlElement foreachElement = SqlMapperGeneratorTool.baseForeachElementGenerator(PARAMETER_NAME, "item", "index", ","); String baseSql = String.format("update %s", tableName); updateElement.addElement(new TextElement(baseSql)); XmlElement setElement = new XmlElement("set"); StringBuilder columnInfo = new StringBuilder(); StringBuilder valuesInfo = new StringBuilder(); StringBuilder columnInfoTotal = new StringBuilder(); for (int i = 0; i pom.xml org.mybatis.generator mybatis-generator-maven-plugin ${mybatis.generator} ${basedir}/src/main/resources/generator/generatorConfig.xml true true org.mybatis.generator mybatis-generator-core ${mybatis.generator} com.hui.mybatis.plugins hui-mybatis-plugins 0.0.1-SNAPSHOT mysql mysql-connector-java 5.1.44 com.oracle ojdbc6 11.1.0.7.0 org.postgresql postgresql ${postgresql.version} Author 作者:HuHui 转载:欢迎一起讨论web和大数据问题,转载请注明作者和原文链接,感谢



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3